Skip to content

Conversation

@surajsahani
Copy link
Contributor

This PR re-introduces the improvements from #7 with the test failure fixed.

Changes

  • ✅ Add /ralph:status command to check loop state
  • ✅ Add validation script to verify prerequisites
  • ✅ Support --flag=value argument format in setup.sh
  • ✅ Add TROUBLESHOOTING.md guide for common issues
  • ✅ Add GitHub Actions workflow for automated testing
  • ✅ Add status command tests
  • ✅ Add version bump utility script
  • ✅ Enhance help command with examples
  • ✅ Update README with new features and validation steps

Fix

  • Strip /ralph:loop prefix from stored prompt to fix Test 4 failure
  • All tests now pass successfully ✅

Related

Testing

All test suites pass:

  • bash tests/setup_test.sh
  • bash tests/hook_test.sh
  • bash tests/status_test.sh

- Add /ralph:status command to check loop state
- Add validation script to verify prerequisites
- Support --flag=value argument format in setup.sh
- Add TROUBLESHOOTING.md guide for common issues
- Add GitHub Actions workflow for automated testing
- Add status command tests
- Add version bump utility script
- Enhance help command with examples
- Update README with new features and validation steps
- Ensures original_prompt in state.json doesn't include the command prefix
- Fixes Test 4 failure in setup_test.sh
- All tests now pass successfully
@gemini-code-assist
Copy link

Summary of Changes

Hello @surajsahani, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the Ralph extension by introducing new features focused on user experience, debugging, and maintainability. It adds a status command for real-time loop monitoring, a validation script to ensure proper setup, and a detailed troubleshooting guide to assist users with common problems. Furthermore, it improves argument parsing for loop commands and includes a utility for version management. A key fix addresses a bug related to prompt parsing, ensuring the core loop functionality operates as expected.

Highlights

  • New /ralph:status Command: Introduced a command to check the current state of an active Ralph loop, displaying details like iteration, task, and completion promise.
  • Prerequisite Validation Script: Added scripts/validate.sh to help users verify necessary tools (like jq) and configurations (like enabled hooks) for Ralph to function correctly.
  • Comprehensive Troubleshooting Guide: A new TROUBLESHOOTING.md provides solutions for common issues such as loops not starting or stopping, ghost loops, and permission errors.
  • Enhanced Argument Parsing: The scripts/setup.sh script now supports the --flag=value syntax for arguments like --max-iterations and --completion-promise, improving usability.
  • Critical Bug Fix: Resolved an issue where the /ralph:loop prefix was not correctly stripped from the stored prompt, which was causing test failures.
  • Version Management Utility: A new scripts/bump-version.sh script automates updating the extension's version number in gemini-extension.json.
  • Improved Help Documentation: The /ralph:help command now includes practical examples for using /ralph:loop and directs users to the new troubleshooting guide.
  • Dedicated Status Command Tests: New tests (tests/status_test.sh) were added to ensure the reliability and correct functionality of the /ralph:status command.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • README.md
    • Updated with instructions for the new validation script.
    • Documented the /ralph:status command in the 'Manual Controls' section.
  • TROUBLESHOOTING.md
    • New file added, providing a comprehensive guide for common issues and debugging tips.
  • commands/ralph/help.toml
    • Updated to include the /ralph:status command in the command list.
    • Added new 'Examples' section for /ralph:loop usage.
    • Included a 'Troubleshooting' section linking to the new TROUBLESHOOTING.md.
  • commands/ralph/status.toml
    • New file added, defining the /ralph:status command and its associated script.
  • scripts/bump-version.sh
    • New script added to automate version updates in gemini-extension.json.
  • scripts/setup.sh
    • Modified argument parsing to support --flag=value syntax for --max-iterations and --completion-promise.
    • Added logic to strip the /ralph:loop prefix from the stored prompt.
  • scripts/status.sh
    • New script added to display the current state of the Ralph loop, including active status, iteration, task, and completion promise.
  • scripts/validate.sh
    • New script added to check for prerequisites like jq and proper hook configuration in ~/.gemini/settings.json.
  • tests/status_test.sh
    • New test file added to verify the functionality of the status.sh script, covering cases with no active loop and an active loop's status display.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/test.yml
Activity
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a significant set of features that improve the usability and robustness of the Ralph extension, including a status command, a validation script, and a troubleshooting guide. The code is generally well-written and the new features are implemented correctly. The fix for the prompt parsing also addresses a key bug. I have a few suggestions to enhance the scripts further: one critical fix in the bump-version.sh script to prevent potential data loss, a couple of medium-severity suggestions to make documentation and validation scripts more platform-agnostic, and a note on improving test structure for better isolation.

- Fix critical data loss issue in bump-version.sh by checking jq exit code
- Make jq installation instructions platform-agnostic in TROUBLESHOOTING.md
- Update validate.sh with multi-platform installation instructions
- Call cleanup before each test to ensure clean state
- Prevents test interdependencies and improves reliability
- Follows best practice of explicit setup/teardown per test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant